﻿Imports ISNet.WebUI.WebGrid
Imports System
Imports System.Data
Imports System.Configuration
Imports System.Collections
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls
Imports log4net

Partial Class mtEvm
    Inherits System.Web.UI.Page

    Private Shared logger As ILog = LogManager.GetLogger("mtEvm")

    Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
        ScreenName.Text = "ระบบจัดทำงบประมาณ  >>  ตั้งค่าระบบ >>  Evm"
        'Session("users") = "bb0011"
        If Session("users") Is Nothing Then
            Response.Redirect("LoginForm.aspx")
        End If
        
        If IsPostBack = False Then
            PlanYearsTxt.Text = Session("PlanYear")
            Session("PlanYearTxt") = PlanYearsTxt.Text
            Session("SearchTxt") += " and PlanYear = " & PlanYearsTxt.Text

            'Else
            '    PlanYearsTxt.Text = Session("PlanYearTxt")

        End If

    End Sub

    Protected Sub WebGrid1_InitializeDataSource(ByVal sender As Object, ByVal e As ISNet.WebUI.WebGrid.DataSourceEventArgs) Handles WebGrid1.InitializeDataSource

        Dim adapter As New MasterDataSetTableAdapters.EvmTableAdapter
        Dim dtTable As New MasterDataSet.EvmDataTable

        Dim sql As String = "select * from Evm "
        sql += " WHERE 1 = 1 "

        sql += Session("SearchTxt")

        sql += " ORDER BY PlanYear, EvmCode "

        adapter.SearchEvm(dtTable, sql)
        'Response.Write(sql)

        Session("count_data") = dtTable.Rows.Count

        dtTable.Columns("PlanYear").AllowDBNull = True
        dtTable.Columns("EvmCode").AllowDBNull = True
        dtTable.Columns("Description").AllowDBNull = True

        e.DataSource = dtTable

    End Sub

    Protected Sub WebGrid1_InitializeRow(ByVal sender As Object, ByVal e As ISNet.WebUI.WebGrid.RowEventArgs)
        ' don't edit column
        e.Row.Cells(1).ForceNoEdit = True
        e.Row.Cells(4).ForceNoEdit = True
    End Sub

    Protected Sub WebGrid1_AddRow(ByVal sender As Object, ByVal e As ISNet.WebUI.WebGrid.RowEventArgs)
        Dim adapter As New MasterDataSetTableAdapters.EvmTableAdapter
        ' Dim id As Decimal
        'id = adapter.InsertFCenter(e.Row.Cells(0).Value, e.Row.Cells(1).Value, e.Row.Cells(2).Value, Date.Now, Session("users"))
        Dim check = adapter.CheckExistEvm(e.Row.Cells(1).Value, e.Row.Cells(2).Value)

        If Val(check) <> 0 Then
            WebGrid1.ClearCachedDataSource()
            WebGrid1.ClientAction.Refresh()
            Throw New ArgumentException("ข้อมูล Evm ซ้ำกับที่มีอยู่ กรุณาตรวจสอบ")
        Else
            If Val(e.Row.Cells(1).Value) = 0 Then
                WebGrid1.ClearCachedDataSource()
                Throw New ArgumentException("PlanYear เป็นตัวเลข กรุณาตรวจสอบ")
            Else
                Dim id As Decimal
                id = adapter.InsertEvm(Val(e.Row.Cells(1).Value), e.Row.Cells(2).Value, e.Row.Cells(3).Value)
                Dim dr As DataRow = e.Row.DataRow
                dr("id") = id

                logger.Info("User " & Session("users") & " insert Evm " & e.Row.Cells(2).Value)
                WebGrid1.ClientAction.Refresh()
            End If
        End If

        'Dim dr As DataRow = e.Row.DataRow
        'dr("FundCenterCode") = id
    End Sub
    Protected Sub WebGrid1_UpdateRow(ByVal sender As Object, ByVal e As ISNet.WebUI.WebGrid.RowEventArgs)
        Dim id As String
        id = e.Row.KeyValue
        'WebGrid1.ClientAction.Alert(iyear)

        Dim adapter As New MasterDataSetTableAdapters.EvmTableAdapter
        Dim check = adapter.CheckExistUpdate(e.Row.Cells(1).Value, e.Row.Cells(2).Value, id)

        If Val(check) = 1 Then
            WebGrid1.ClearCachedDataSource()
            WebGrid1.ClientAction.Refresh()
            Throw New ArgumentException("ข้อมูล evm ซ้ำกับที่มีอยู่ กรุณาตรวจสอบ")
        Else
            If Val(e.Row.Cells(1).Value) = 0 Then
                WebGrid1.ClearCachedDataSource()
                Throw New ArgumentException("PlanYear เป็นตัวเลข กรุณาตรวจสอบ")
            Else
                adapter.UpdateEvmByID(Val(e.Row.Cells(1).Value), e.Row.Cells(2).Value, e.Row.Cells(3).Value, id)
                logger.Info("User " & Session("users") & " update evm " & e.Row.Cells(2).Value)
                WebGrid1.ClientAction.Refresh()
            End If

        End If
    End Sub

    Protected Sub WebGrid1_InitializePostBack(ByVal sender As Object, ByVal e As ISNet.WebUI.WebGrid.PostbackEventArgs) Handles WebGrid1.InitializePostBack
        If e.Action = PostBackAction.Custom Then
            Dim type As String = TryCast(Request("type"), String)
            Dim Deletet As String = TryCast(Request("id"), String)

            Dim adapter As New MasterDataSetTableAdapters.EvmTableAdapter

            ' MsgBox(idd & "/" & idy)

            If type = "1" Then
                adapter.DeleteEvmByID(Deletet)
                logger.Info("User " & Session("users") & " delete evm " & Deletet)

            ElseIf type = "2" Then
                For Each keyValue As String In WebGrid1.RootTable.GetCheckedRows()
                    adapter.DeleteEvmByID(keyValue)
                    logger.Info("User " & Session("users") & " delete evm " & keyValue)
                Next keyValue

            End If
            WebGrid1.ClientAction.Refresh()
        End If
    End Sub
    Protected Sub SearhBtn_Click(sender As Object, e As ImageClickEventArgs) Handles SearhBtn.Click
        Session("SearchTxt") = ""
        If PlanYearsTxt.Text <> "" Then
            Session("SearchTxt") += " and PlanYear = " & Val(PlanYearsTxt.Text)
        End If
        If CodeTxt.Text <> "" Then
            Session("SearchTxt") += " and EvmCode = '" & CodeTxt.Text & "'"
        End If
        If SearchTxt.Text <> "" Then
            Session("SearchTxt") += " and Description like '%" & SearchTxt.Text & "%'"
        End If

        WebGrid1.ClearCachedDataSource()
        WebGrid1.RebindDataSource()
        t_countdata.Visible = True
        If Val(Session("count_data")) > 0 Then
            L_CountData.Text = FormatNumber(Val(Session("count_data")), 0) & " รายการ"
        Else
            L_CountData.Text = "ไม่พบข้อมูลที่ค้นหา"
        End If
    End Sub

    Protected Sub SaveBtn_Click(sender As Object, e As ImageClickEventArgs) Handles SaveBtn.Click
        WebGrid1.ClearCachedDataSource()
        WebGrid1.RebindDataSource()
    End Sub

End Class
